package studentfunction;

import student.StudenList;
import student.Student;

import java.util.Scanner;

public class DeltFunction implements IFunction{
    @Override
    public void work(StudenList studenList) {
        System.out.println("删除学生！");
        System.out.println("请输入你要删除的学生的名字：");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int currentSize = studenList.getUsedsize();//记录当前学生数量
        int index = -1;//存储的是删除学生所在的下标
        for (int i = 0; i < currentSize; i++) {
            Student tmp = studenList.getStudent(i);
            if(tmp.getName().equals(name)) {//当姓名相等时返回当前姓名下标
                index = i;
                break;
            }
        }
        //删除（靠挪动数据，使数组后一元素覆盖前一元素
        for (int j = index; j < currentSize-1; j++) {
            Student student = studenList.getStudent(j+1);//获取当前下标的后一个元素
            studenList.setStudent(j, student);//把刚刚获取的后面一个元素，放入前面一个元素位置，实现覆盖
        }
        //修改size
        studenList.setUsedsize(currentSize-1);//因为删除了一个，所以总数减一
        //因为删除的是对象  所以 把最后一个置为null
        studenList.setStudent(currentSize-1,null);//因为覆盖最后一个是多余的所以置为null
        System.out.println("删除学生信息成功！");

    }
}
